package com.le.tester.book.effectivejava3rdchinese.secondReading.l06;

import java.util.regex.Pattern;

/**
 * createTime：2024-08-08 9:14
 * description：不去重复的创建一个昂贵的新实例，如果对象很小也不昂贵，一直创建新对象也是可取
 */
public class RomanNumerals {

    //创建一个static final使得实例只创建一下，并且可以重复使用

    public static final Pattern PATTERN = Pattern.compile("^(?=.)M*(C[MD]|D?C{0,3})"
            + "(X[CL]|L?X{0,3})(I[XV]|V?I{0,3})$");


    //静态方法
    static boolean isRomanNumeral(String s) {
        return PATTERN.matcher(s).matches();
    }

    //不要在循环中使用装箱类型
    private static long sum() {

        Long sum = 0L;
        for (int i = 0; i < Integer.MAX_VALUE; i++) {
            sum += i;
        }
        return sum;
    }
}
